package com.person.sys.service;

import java.util.List;

import com.person.commons.exception.InfrastructureException;
import com.person.sys.model.SysCode;

public interface SysCodeService {

	/**
	 * 查找系统代码主分类
	 * 
	 * @exception InfrastructureException
	 * @return
	 */
	public abstract List<SysCode> searchAllTopCode();

	/**
	 * 查找系统代码主分类的编号和名称
	 * 用于添加二级分类代码
	 * 
	 * @exception InfrastructureException
	 * @return
	 */
	public abstract List searchAllTopCodeNo();
	
	/**
	 * 查找系统主分类代码的编号和名称
	 * 
	 * @exception InfrastructureException
	 * @return
	 */

	public abstract SysCode searchTopCodeByNo(String codeno);
	
	/**
	 * 根据ID查找系统代码
	 * 
	 * @exception InfrastructureException
	 * @return
	 */
	public abstract SysCode searchCodeById(String codeId);

	/**
	 * 修改代码信息
	 * 
	 * @param sysCode
	 *            SysCode对象
	 * @return char SUCCESS OR FAIL OR REPEAT 成功或者失败
	 * @author wang zitao
	 */
	public abstract char modifyCode(SysCode sysCode);

	/**
	 * 添加系统代码
	 * 
	 * @param sysCode
	 *            SysCode对象
	 * @return char SUCCESS OR FAIL 成功或者失败
	 * @author wangzt
	 */

	public abstract char createCode(SysCode sysCode);

	/**
	 * 删除代码类
	 * 
	 * @param codeNo
	 *            要删除的代码编号
	 * @return char SUCCESS OR FAIL 成功或者失败
	 * @author wangzt
	 */

	public abstract char deleteCode(String codeId,String codeNo);
	
	
	/**
     * 通过系统编号查找系统分类代码
     * 用于编辑代码
	 * @author wang zitao
	 * @prama codeno本级代码编号
	 * @return 代码信息
	 */
	public abstract List<SysCode> searchCodeByNo(String codeno,String codeNoParent);

	
	public abstract List searchNextCodeByNo(String codeno);
	
	
	/**
	 * 删除二级代码类
	 * 
	 * @param codeId
	 *            要删除的代码序号
	 * @return char SUCCESS OR FAIL 成功或者失败
	 * @author wangzt
	 */
	public abstract char deleteNextCode(String codeId);
	
	/**
	 * 添加二级系统代码
	 * 
	 * @param sysCode
	 *            SysCode对象
	 * @return char SUCCESS OR FAIL 成功或者失败
	 * @author wangzt
	 */
	public abstract char createNextCode(SysCode sysCode);
	
}